package com.sjh.baseui.picture

import androidx.annotation.DrawableRes

/**
 * 图片加载方式构造器
 */
class ImageBuild{
    companion object{
        fun build() = ImageBuild()
    }

    /**
     * 错误情况下显示的图片
     */
    @DrawableRes
    var errorImage:Int =0
        private set
        get() {
            if(field == 0) return LibPicture.PLACEHOLDER
            return field
        }

    /**
     * 占位图
     */
    @DrawableRes
    var placeImage : Int = 0
        private set
        get() {
            if(field == 0) return LibPicture.PLACEHOLDER
            return field
        }

    /**
     * 是否是圆形图片
     */
    var isCircle = false
        private set

    /**
     * 是否设置高斯模糊
     */
    var isBlur = false
        private set

    /**
     * 圆角，单位dp
     */
    var cornerRadius = 0f
        private set

    /**
     * 图片拉伸方式,默认为居中裁剪
     */
    var scaleType: ImageScaleType =
        ImageScaleType.CenterCrop
        private set


    /************************************* 属性与方法的分割线 *************************************************/



    /**
     * 设置错误情况下显示的图片
     */
    fun setErrorImage(@DrawableRes imgRes:Int): ImageBuild {
        errorImage = imgRes
        return this
    }

    /**
     * 设置占位图
     */
    fun setPlaceImage(@DrawableRes imgRes:Int): ImageBuild {
        placeImage = imgRes
        return this
    }


    /**
     * 设置是否高斯模糊
     */
    fun isBlur(boolean:Boolean): ImageBuild {
        isBlur = boolean
        return this
    }

    /**
     * 设置是否显示为圆形图片
     */
    fun isCircle(boolean:Boolean): ImageBuild {
        isCircle = boolean
        return this
    }

    /**
     * 设置图片的圆角，单位dp
     * 该操作的优先级比isCircle高
     */
    fun setCornerRadius(value:Float): ImageBuild {
        cornerRadius = value
        return this
    }

    /**
     * 设置图片的拉伸方式
     */
    fun setScaleType(imageScaleType: ImageScaleType): ImageBuild {
        scaleType = imageScaleType
        return this
    }
}